package hojatrabajo1;

/*
 * Interface para el Radio.
 * 
 * @author Varios
 */

public interface iRadio
{
    /** 
     * @descripcion: Enciende o apaga el Radio.
     * @nombre: Power()
     * @parametro: 
     * @retorno: True si el radio se encendió, o false si el
     * radio se apagó.
     * @pre-condiciones:
     * @post-condiciones:
     */
    public abstract boolean Power();
    
    /* *
     * @descripcion: Cambia la banda de AM a FM o viceversa.
     * @nombre: ChangeSignal()
     * @parametro: 
     * @retorno: True si la banda es AM y false si la banda
     * es FM.
     * @pre-condiciones:
     * @post-condiciones:
     */
    public abstract boolean ChangeSignal();
    
    /**
     * @descripcion: Adelanta la frecuencia a la siguiente posible..
     * @nombre: NextFreq()
     * @parametro: 
     * @retorno: La frecuencia a la que se pasa.
     * @pre-condiciones:
     * @post-condiciones:
     */
    public abstract float NextFreq();
    
    /**
     * @descripcion: Graba la frecuencia actual en el botón dado. Existen únicamente
     * 12 posiciones de memoria (botones) por cada Banda, y se encuentran
     * en el rango [1,12].
     * @nombre: SaveFreq()
     * @parametro: Boton:int
     * @retorno True si la operación fue exitosa, false en caso contrario.
     * @pre-condiciones:
     * @post-condiciones:
     */
    public abstract boolean SaveFreq( int Boton );
    
    /**
     * @descripcion: Cambia la estación a la grabada en el botón dado. Devuelve la estación
     * actual que se escucha. Existen únicamente 12 posiciones de memoria por
     * cada Banda, y se encuentran en el rango [1,12].
     * @nombre: ChangeTune()
     * @parametro: Boton:int
     * @retorno La frecuencia (nueva) a la que está sintonizada la radio.
     * @pre-condiciones:
     * @post-condiciones:
     */
     public abstract float ChangeTune( int Boton );
    
    /**
     * @descripcion: Cambia la estación a la grabada en el botón dado. Devuelve la estación
     * actual que se escucha. Existen únicamente 12 posiciones de memoria por
     * cada Banda, y se encuentran en el rango [1,12].
     * @nombre: IsOn()
     * @retorno True si la radio está encendida, false en caso contrario.
     * @pre-condiciones:
     * @post-condiciones:
     */
    public abstract boolean IsOn();
    
    /**     
     * @descripcion: Cambia la estación a la grabada en el botón dado. Devuelve la estación
     * actual que se escucha. Existen únicamente 12 posiciones de memoria por
     * cada Banda, y se encuentran en el rango [1,12].
     * @nombre: IsAm()
     * @retorno True si la banda es AM, y false si es FM.
     * @pre-condiciones:
     * @post-condiciones:
     */
    public abstract boolean IsAm();
    
    /**     
     * @descripcion: Cambia la estación a la grabada en el botón dado. Devuelve la estación
     * actual que se escucha. Existen únicamente 12 posiciones de memoria por
     * cada Banda, y se encuentran en el rango [1,12].
     * @nombre: GetFreq()
     * @retorno La frecuencia actual a la que está sintonizada la radio.
     * @pre-condiciones:
     * @post-condiciones:
     */
    public abstract float GetFreq();
}
